<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			/* 
			  事件循环（event loop）
					- 函数在每次执行时，都会产生一个执行环境
					- 执行环境负责存储函数执行时产生的一切数据
					- 问题：函数的执行环境要存储到哪里呢？
						- 函数的执行环境存储到了一个叫做调用栈的地方
						- 栈，是一种数据结构，特点 后进先出
					
					调用栈（call stack）
						- 调用栈负责存储函数的执行环境
						- 当一个函数被调用时，它的执行环境会作为一个栈帧
							插入到调用栈的栈顶，函数执行完毕其栈帧会自动从栈中弹出
 */

			function fn() {
				let a = 10
				let b = 20

				function fn2() {
					console.log("fn2")
				}

				fn2()

				console.log("fn~")
			}

			fn()

			console.log(1111)
		</script>
	</body>
</html>